#include "udp_server.hpp"
#include <memory>
#include <stdio.h>
#include <vector>

void usage(char* argv[])
{
    cout << "please input like: " << argv[0] << " port[1024+]" << endl;
}

// bool check_cmd(string& cmd)
// {
//     vector<string> v{"kill", "rm", "mv", "cp" };
//     v.push_back("sudo");
//     for(auto& word : v)
//     {
//         auto pos = cmd.find(word);
//         if(pos != string::npos)
//             return false;
//     }
//     return true;
// }

// string ExecuteCmd(string& cmd)
// {
//     cout << "get a request command: " << cmd << endl;
//     //过滤命令
//     if(!check_cmd(cmd)) return "Bad man";

//     FILE* fp = popen(cmd.c_str(), "r");
//     if (fp == nullptr)
//     {
//         cout << "popen failed!" << endl;
//         return "error";
//     }
//     string ret;
//     char buffer[4096];
//     while(true)
//     {
//         char* ok = fgets(buffer, sizeof(buffer), fp);
//         if(ok == nullptr) break;
//         ret += buffer;
//     }

//     pclose(fp);
//     return ret;

// }

int main(int argc, char* argv[])
{
    if(argc != 2)
    {
        //命令行参数不正确
        usage(argv);
        return 1;
    }
    uint16_t port = atoi(argv[1]);//将字符串整型
    udpserver* udps = new udpserver(port);
    unique_ptr<udpserver> pudps(udps);
    pudps->Init();
    pudps->Run();
    return 0;
}